package main

import "github.com/prometheus/client_golang/prometheus"

var (
	// MetricCPUUsage 使用率百分比
	MetricCPUUsage = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "_cpu_usage_percent",
			Help: "CPU usage percentage",
		},
		basicLableNames,
	)

	// MetricMemoryUsage 使用率百分比
	MetricMemoryUsage = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "_memory_usage_percent",
			Help: "Memory usage percentage",
		},
		basicLableNames,
	)

	// MetricTemperature 设备温度
	MetricTemperature = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "_temperature",
			Help: "Equipment temperature (Celsius)",
		},
		basicLableNames,
	)

	// MetricUptime 启动时间
	MetricUptime = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "uptime",
			Help: "Uptime in seconds (time since last boot)",
		},
		basicLableNames,
	)

	// MetricBaseInfo 设备基本信息
	MetricBaseInfo = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "_baseinfo",
			Help: "Device baseinfo (always 1)",
		},
		append(basicLableNames, "model", "mac", "serial_number", "version", "hw_version", "sys_time"),
	)

	// MetricVPNConnectionStatus VPN网络的连接状态
	MetricVPNConnectionStatus = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: metricNamePrefix + "_vpn_connection_status",
			Help: "Connection status of VPN network (1=connected, 0=disconnected)",
		},
		append(basicLableNames, "network_name"),
	)
)
